UMLの爆速プレビュー環境をVisual Studio Code + PlantUML Server on Dockerで簡単に構築する
PlantUMLとは
PlantUMLはシンプルな記法でUMLダイアグラムが作成できる、超便利なツールです。UMLをはじめ、以下のような図の作成もサポートしています。
- ワイヤーフレーム
- アーキテクチャ図
- 仕様及び記述言語 (SDL)
- Ditaa
- ガントチャート
- マインドマップ
- WBS図(作業分解図)
- AsciiMath や JLaTeXMath による、数学的記法
- Entity Relationship diagram
実際に業務で使う場合はテキストを書く→画像に書き出すという順序になりますが、基本的にはプレビューを確認しながら書くと効率良く作成できます。
プレビューを確認しながら書くには、例えばWebアプリなども公開されているのでそちらで済ませてしまう方法もあります。
しかしながら テキストをファイルとして残しながら作業したい場合はやはりローカルが良い。 ということで ローカルでプレビューしながらUMLを書く環境をいい感じに整えることができた ので備忘録としてブログ化します。
図にすると、以下のような構成です。
追記 : GitHub上でプレビューする方法を追記しました。
PlantUML ServerをDockerで動かす
PlantUMLを使ってテキストファイルを図に起こすには、以下のような方法があります。
- PlantUMLをインストールし、コマンドラインから使う
- PlantUMLオンラインサーバーにHTTPリクエストを送って書き出す
- PlantUML Serverをローカルで起動し、HTTPリクエストを送って書き出す
依存なく冪等に環境を用意したいマン からするとインストールなどは避けたい。しかしスピーディーに書きたい。ということで PlantUML Server をローカルで起動する方法を検討していたところ、Docker Imageが公開されていることが分かったので、もはやこれ一択になります。
ローカルで起動するには以下のコマンドを実行します。
$ docker run -d -p 8080:8080 plantuml/plantuml-server:jetty
これで、ローカルでUMLが図に起こせるようになりました。
Visual Studio Codeで編集環境を作る
次にUMLを記述する環境を作ります。Visual Studio CodeにPlantUML用のプラグインがあるので、こちらを使います。
プラグインのインストール
まずVisual Studio Codeで左メニューのエクステンションメニューを開きます。検索窓に「PlantUML」を入力し、検索結果に表示されたPlantUMLのエクステンションをインストールします。
エクステンションの設定
次にエクステンションの設定を開きます。PlantUMLの歯車マークをクリックし、コンテキストメニューから「Configure Extension Settings」を選びます。
ズラッと設定項目が表示されます。下の方にある、次の項目を変更します。
設定項目 | 値 |
---|---|
Plantuml: Render | PlantUMLServer |
Plantuml: Server | http://localhost:8080 |
以上で設定完了です。
プレビューする
それでは試してみましょう。新しいファイルを作成し、試しに以下のように記述し sample.pu
として保存します。
@startuml "Visual Studio Code" -> "PlantUML Extension" : プレビュー命令 "PlantUML Extension" -> "PlantUMLServer (on Docker)" : レンダリングリクエスト "PlantUMLServer (on Docker)" -> "PlantUML Extension" : 画像データレスポンス "PlantUML Extension" -> "Visual Studio Code" : プレビュー画像をレンダリング∂ @enduml
macOSの場合は Option + D を押すとプレビューが表示されます。
画像ファイルとして書き出す
画像ファイルとして書き出すには Shift + ⌘ + P を押し、コマンドパレットを開きます。
> plantuml
と入力するとPlantUMLエクステンションのコマンドが絞り込まれます。その中から「PlantUML: Export Current Diagrams」を選びます。
画像ファイル形式を選びます。今回はPNGにします。
ファイル名と同じ名前のディレクトリに書き出されます。
爆速でUMLやフロー図を書いていこう!
今回ご紹介した構成はローカルで完結するため、ネットワーク状況に依存することなく、いつでもどこでも爆速で利用することができます。PlantUML ServerもDockerで立ち上げることで環境構築も超簡単です。ぜひ導入してみてください!
追記 : GitHub上でプレビューするには?
はてブコメントで「GitHub上でプレビューしたい」というご意見がございました。こちらは 弊社の都元 が作成・公開したChromeプラグイン「Pegmatite」をご利用いただくことで可能になります。
なお、OSSです。